Optimizing timeouts on production appservers

Many apparent iMIS problems are caused by timeout settings, both default session timeouts in iMIS-related web.config files and timeout settings in ASP.NET itself.

■    Timeouts defined in each application's web.config:

□    The idle session timeout ends a user's iMIS session after 20 minutes of inactivity.

□    The idle authentication ticket timeout defaults to 30 minutes, unless the "Remember Me” option (a checkbox on the login screen) is enabled.

■    Timeouts for the ASP.NET application pool:

□    The Shutdown worker processes timeout kills idle processes after 20 minutes: if the appserver gets no request within 20 minutes, it restarts iMIS, and the application startup takes time.

□    The Recycle worker processes timeout forces a complete recycle (restart) every 1740 minutes (29 hours), even for non-idle worker processes.

Caution! Don't overdo the fix. Excessive timeouts worsen the performance and memory usage of your server, and disabling Application Pool recycling slows performance over time, as memory cannot be released by Task Manager's w3wp.exe process (which IIS uses to launch .NET application pool processes). Therefore, make changes carefully, and test their impacts.

To increase session-specific timeouts

If "Page Not Available" errors or logon- or password-related windows appear erroneously, increase the session-specific timeout in web.config files associated with iMIS.

1.  On the appserver, open each iMIS-related web.config file for editing.

□    iMIS default location: C:\Program Files\ASI\iMIS\net

□    iMISpublic default location: C:\Program Files\ASI\iMIS\iMIS_public

2.  Locate the <sessionState> element and modify the timeout attribute.

Recommended: For high traffic, set within 60 to 240 minutes; for low traffic, set within 720 to 1440 minutes.

3.  Repeat this process for each iMIS appserver.

To improve application pool timeouts in IIS6

If changing windows in iMIS is slow, increase the application pool timeouts.

1.  Open Internet Information Services (IIS) Manager on the appserver.

2.  In the Application Pools folder, right-click iMISASP20 and choose Properties.

3.  On the Performance tab, disable or modify the Shutdown worker processes timeout.

Recommended: For high traffic, set within 60 to 720 minutes; for low traffic, disable entirely.

4.  On the Recycling tab, modify the Recycle worker processes timeout.

Recommended: For high traffic, do not change the timeout; for low traffic, set to run at off-peak hours or weekly

5.  Repeat this process for each iMIS appserver.

To improve application pool timeouts in IIS7

1.  On your appserver, open IIS Manager.

2.  In the left pane (Connections), select Application Pools.

3.  In the middle pane (Application Pools), select iMISApp AppPool.

4.  In the right pane (Actions), select Edit Application Pool > Recycling… (not the Recycle… task).

5.  In the Recycling Conditions window, ensure all checkboxes are cleared (unchecked).

6.  Click Next, then Finish.

7.  Again in the right pane (Actions), select Edit Application Pool > Advanced Settings…

8.  In the Advanced Settings window, under Process Model, set Idle Time-out (minutes) to zero (0).

9.  Click OK.

10. Back in the left pane (Connections), select Sites.

11. Select the Default Web Site.

12. In the right pane (Actions), select Manage Web Site > Advanced Settings...

13. In the Advanced Settings window, under Connection Limits, set Connection Time-out to zero (0).

14. Save the setting changes.

15. Restart IIS.